package org.jeecg.modules.wms.service;

import org.jeecg.modules.wms.vo.SurplusMaterialVO;
import org.jeecg.modules.wms.vo.WmsInboundOrderMaterialVO;

import java.util.List;

/**
 * 自动库位分配服务接口
 */
public interface IAutoLocationAllocationService {
    
    /**
     * 为余料自动分配库位
     * 
     * @param surplusMaterials 余料信息列表
     * @return 分配了库位的入库物料列表
     */
    List<WmsInboundOrderMaterialVO> allocateLocationsForSurplus(List<SurplusMaterialVO> surplusMaterials);
    
    /**
     * 为单个余料分配库位
     * 
     * @param surplusMaterial 余料信息
     * @return 分配了库位的入库物料信息
     */
    WmsInboundOrderMaterialVO allocateLocationForSingleSurplus(SurplusMaterialVO surplusMaterial);
    
    /**
     * 获取余料专用仓库列表
     * 
     * @return 余料专用仓库ID列表
     */
    List<String> getSurplusWarehouseIds();
    
    /**
     * 获取指定仓库的可用库位
     * 
     * @param warehouseId 仓库ID
     * @param materialType 物料类型
     * @return 可用库位列表
     */
    List<String> getAvailableLocationIds(String warehouseId, String materialType);
}
